package com.egao.common.module.company.entity.vo;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.egao.common.module.company.entity.Attachment;
import com.egao.common.module.company.entity.Position;
import com.egao.common.module.push.entity.AbilityFormDTO;
import com.egao.common.module.push.entity.PositionMatching;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

import javax.validation.constraints.NotBlank;
import java.io.Serializable;
import java.util.Date;
import java.util.List;

/**
 * 招聘信息(Recruit)表实体类
 *
 * @author dl
 */
@Data
public class RecruitFormVO implements Serializable {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty("主键")
    private Integer id;

    @ApiModelProperty("发布对象 1单位 2学校")
    private String addType;

    @ApiModelProperty("单位编号")
    private Integer companyId;

    @ApiModelProperty("单位名称 学校发布信息时使用")
    private String companyName;

    @ApiModelProperty("标题")
    @NotBlank(message = "标题不能为空")
    private String title;

    @ApiModelProperty("招聘类型 1在线招聘 2实习信息")
    @NotBlank(message = "招聘类型不能为空")
    private String type;

    @ApiModelProperty("职位类别 全职,兼职,实习")
    @NotBlank(message = "职位类别不能为空")
    private String jobCategory;

    @ApiModelProperty("招聘信息有效期")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date validTime;

    @ApiModelProperty("职位名称")
    @NotBlank(message = "职位不能为空")
    private String jobName;

    @ApiModelProperty("招聘人数")
    @NotBlank(message = "招聘人数不能为空")
    private String number;

    @ApiModelProperty("工作地区")
    @NotBlank(message = "工作地区不能为空")
    private String area;

    @ApiModelProperty("相关专业")
    @NotBlank(message = "相关专业不能为空")
    private String majors;

    @ApiModelProperty("学历限制  本科,硕士,博士")
    @NotBlank(message = "学历限制不能为空")
    private String education;

    @ApiModelProperty("接收简历邮箱")
    @NotBlank(message = "接收简历邮箱不能为空")
    private String email;

    @ApiModelProperty("招聘电话")
    @NotBlank(message = "招聘电话不能为空")
    private String recruitMobile;

    @ApiModelProperty("招聘网址")
    private String recruitWebsite;

    @ApiModelProperty("招聘联系人")
    @NotBlank(message = "招聘联系人不能为空")
    private String recruitContact;

    @ApiModelProperty("薪资")
    private String salary;

    @ApiModelProperty("薪资类型  0自定义 1面议")
    private String salaryType;

    @ApiModelProperty("最低薪资")
    private Integer salaryMin;

    @ApiModelProperty("最高薪资")
    private Integer salaryMax;

    @ApiModelProperty("招聘岗位及要求、简历投递方式等")
    private String content;

    @ApiModelProperty("招聘信息状态 0待审核 1审核通过 2审核不通过")
    private String state;

    @ApiModelProperty("审核说明")
    private String stateContent;

    @ApiModelProperty("点击量")
    private Integer hits;

    @ApiModelProperty("职位编号")
    private String positionIds;

    @ApiModelProperty("职位名称")
    private String positionNames;

    @ApiModelProperty("企业是否删除 0: 否 1：是")
    private Integer invalid;

    @ApiModelProperty("推送内容")
    private String pushList;

    @ApiModelProperty("是否推送  0.推送  1.不推")
    private String pushFlag;

    @ApiModelProperty("是否发送邮件 0 发送 1 不发送")
    private String emailFlag;

    @ApiModelProperty("发布人编号")
    private Integer createBy;

    @ApiModelProperty("审核人编号")
    private Integer checkUserId;

    @ApiModelProperty("招聘信息对应职位")
    private List<Position> positions;

    @ApiModelProperty("单位性质")
    private String nature;

    @ApiModelProperty("单位行业")
    private String industry;

    @ApiModelProperty("单位规模")
    private String scale;

    @ApiModelProperty("所在省份")
    private String province;

    @ApiModelProperty("所在城市")
    private String city;

    @ApiModelProperty("附件")
    private List<Attachment> attachments;

    @ApiModelProperty("职位匹配数据")
    private List<PositionMatching> positionMatching;

    @ApiModelProperty("是否能力推荐 1、否 0、是")
    private String abilityFlag;

    @ApiModelProperty("具体需要能力")
    private String abilityContent;

    @ApiModelProperty("能力标签对象")
    private AbilityFormDTO abilityFormDTO;

    @ApiModelProperty("单位简介")
    private String dwjj;
    @ApiModelProperty("招聘对象及条件")
    private String zpdxjtj;
    @ApiModelProperty("招聘岗位")
    private String zpgw;
    @ApiModelProperty("薪酬福利")
    private String xcfl;
    @ApiModelProperty("职业发展")
    private String zyfz;
    @ApiModelProperty("招聘流程")
    private String zplc;
    @ApiModelProperty("其他招聘注意事项")
    private String qtzpzzsx;
    @ApiModelProperty("联系方式")
    private String lxfs;
}